import 'package:built_collection/built_collection.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
import 'package:mobile_app.core/collection_navigator/application/models/single_lexical_item_page_model.dart';
import 'package:mobile_app.core/core/domain/entities/dialect.dart';
import 'package:mobile_app.core/core/domain/entities/learning_content/lexical_item/lexical_item.dart';
import 'package:mobile_app.core/core/presentation/helpers/show_dialogs.dart';
import 'package:mobile_app.core/core/presentation/theme/theme.dart';
import 'package:mobile_app.core/core/presentation/widgets/app_back_button.dart';
import 'package:mobile_app.core/core/presentation/widgets/dialogs/app_action_dialog.dart';
import 'package:mobile_app.core/core/presentation/widgets/navigation_bar_title.dart';
import 'package:mobile_app.core/core/presentation/widgets/stateful_wloc.dart';
import 'package:mobile_app.core/core/presentation/widgets/wloc_builder.dart';
import 'package:mobile_app.core/injection_container.dart' as core_di;
import 'package:mobile_app.home.collections/single_lexical_item_page/application/bloc/bloc.dart'
    as bloc;
import 'package:mobile_app.home.collections/single_lexical_item_page/domain/entities/deletion_card_action.dart';
import 'package:mobile_app.home.collections/single_lexical_item_page/injection_container.dart'
    as single_lexical_item_page_di;
import 'package:mobile_app.home.collections/single_lexical_item_page/presentation/localization/translation.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/addition_to_collection_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/addition_to_learning_queue_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/editing_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/exclusion_from_learning_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/mark_as_completely_learned_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/mark_as_known_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/mistake_report_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/progress_reset_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/removal_from_learning_queue_card_action.dart';
import 'package:mobile_app.home.core/core/domain/entities/card_actions/return_to_learning_card_action.dart';
import 'package:mobile_app.home.core/core/presentation/helpers/card_wloc_mixin.dart';
import 'package:mobile_app.home.core/core/presentation/widgets/card_full_content.dart';
import 'package:mobile_app.home.core/core/presentation/widgets/lexical_item_card.dart';
import 'package:mobile_app.home.core/custom_lexical_item_editing_page/presentation/page/page.dart';

part 'view.dart';

part 'wloc.dart';

part 'wloc_state.dart';

part 'wloc_state_factory.dart';

class SingleLexicalItemPage extends StatefulWidget {
  const SingleLexicalItemPage({
    required this.pageModel,
    super.key,
  });

  final SingleLexicalItemPageModel pageModel;

  @override
  State<SingleLexicalItemPage> createState() => _SingleLexicalItemPageWloc();
}
